FROM --platform=linux/amd64 dh-mirror.gitverse.ru/python:3.10.14-slim-bookworm

LABEL AUTHOR="Cloud.ru"
ENV AUTHOR="Cloud.ru"

ENV DEBIAN_FRONTEND noninteractive
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

ENV TZ=Europe/Moscow
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

###########################################################################################################
# Install apt base packages

COPY utils/ubuntu/apt/apt_install_base.sh /tmp/apt_install_base.sh
RUN chmod +x /tmp/apt_install_base.sh && \
    /bin/bash /tmp/apt_install_base.sh && \
    rm /tmp/apt_install_base.sh

###########################################################################################################
# Configure user

RUN useradd -u 1000 -m jovyan --shell /bin/bash && \
    mkdir /home/user && \
    chown 1000:1000 /home/user

###########################################################################################################
# Install pip deps

COPY utils/python/pip/requirements/jupyter_core.txt /tmp/jupyter_core.txt
RUN pip install --no-cache --no-cache-dir --upgrade -r /tmp/jupyter_core.txt && \
    rm /tmp/jupyter_core.txt
    
###########################################################################################################
# Configure jupyter

ENV JUPYTER_CONFIG_DIR=/tmp/.jupyter
ENV JUPYTER_DATA_DIR=/tmp/.jupyter_data
ENV JUPYTER_CONFIG_PATH=${JUPYTER_CONFIG_DIR}

RUN mkdir -p ${JUPYTER_CONFIG_DIR}
COPY --chown=1000:1000 utils/python/jupyter/config ${JUPYTER_CONFIG_DIR}

COPY utils/python/jupyter/configure_extensions.sh /tmp/configure_extensions.sh
RUN chmod +x /tmp/configure_extensions.sh && \
    /bin/bash /tmp/configure_extensions.sh && \
    rm /tmp/configure_extensions.sh

###########################################################################################################
# Start

RUN chown 1000:1000 ${JUPYTER_CONFIG_DIR}

COPY --chown=1000:1000 utils/ubuntu/entrypoint.sh /home/user/entrypoint.sh

USER jovyan
WORKDIR /home/jovyan
EXPOSE 8888

ENTRYPOINT ["/bin/bash", "/home/user/entrypoint.sh"]